Conventionally, methods and apparatus for dynamically allocating memory in a RAM function to store the information about how the memory is allocated inside the memory itself. As is well known in the art, this approach can cause problems since the allocation information can be destroyed by the programs that are using the memory.
It has been considered in the past, in order to overcome the danger that a program using a RAM will corrupt the integral dynamic allocation information, to place the dynamic allocation information in a separate memory which may be a separate area of RAM. However, all known prior art attempts at implementing this approach have proven to be unacceptably inefficient because the information was stored in substantially the same form as with integrated storage which brought about the necessity to reference both memories (or areas of RAM) to establish, maintain and use the dynamic allocation information. Further, with this approach to the use of a separate memory to store the allocation information, it has been very difficult to determine when and how relinquished memory areas can be joined for subsequent allocation.